<?php
/**
 * PhpStorm
 * User: zucheng
 * Date: 2019/3/19
 */

namespace App\Library;


class Common
{
    /**
     * 生成签名
     * @param array $data 请求参数
     * @param string $secret 密钥
     * @param boolean $withDate 签名中是否使用日期 true使用 false不使用
     * @return string
     */
    public static function createSign(array $data, $secret, $withDate = true)
    {
        unset($data['sign']);
        ksort($data);

        $str = '';
        foreach ($data as $key => $value) {
            $str .= "&$key=$value";
        }
        $str = trim($str, "&") . $secret;
        if ($withDate) {
            $str .= date('Y-m-d');
        }

        return strtolower(md5($str));
    }

    /**
     * 生成唯一订单号
     * @return string
     */
    public static function createOrderNo()
    {
        return 'OR' . date('dHis') . mt_rand(10, 99);
//        $prefix = 'or' . mt_rand(0, 9);
//        return uniqid($prefix);
    }

    /**
     * 生成唯一运货单号
     * @return string
     */
    public static function createShippingNo()
    {
        return 'SH' . date('dHis') . mt_rand(10, 99);
//        $prefix = 'sh' . mt_rand(0, 9);
//        return uniqid($prefix);
    }

    /**
     * 生成唯一的支付订单号
     * @return string
     */
    public static function createTradeNo()
    {
        return 'TR' . date('dHis') . mt_rand(10, 99);
//        $prefix = 'tr' . mt_rand(0, 9);
//        return uniqid($prefix);
    }

    /**
     * 生成唯一的退款单号
     * @return string
     */
    public static function createRefundNo()
    {
        return 'RE' . date('dHis') . mt_rand(10, 99);
//        $prefix = 're' . mt_rand(0, 9);
//        return uniqid($prefix);
    }

    /**
     * 模型信息不存在提示格式化
     * @param $model
     * @return string
     */
    public static function notFoundModelFormat($model)
    {
        $msg = config('model.not_found');
        return isset($msg[ $model ]) ? $msg[ $model ] . '不存在' : '信息不存在';
    }

}